<?php
class TDataTableVagaCandidato extends TDataTable
{    
    
    /**
     * $vw = new ViewVagaCandidato();
		$criterio = $form;
		$criterio['precondicao'] = "vagaativa like 'SIM' and contratoid = $id AND 
		( statuscandidato <> 'VINCULACAO FINALIZADA' AND statuscandidato <> 'CANDIDATO VINCULADO' 
		AND statuscandidato <> 'ENCAMINHADO PARA PT' )";
     */
    
    /**
     * Construtor
     * @param $operador
     * @param $options
     */
    public function __construct( $operador = NULL,$pfcid = NULL, $contratoid = NULL, $statusPermitidos = NULL, $statusProibidos = NULL )
    {
        $operador = (is_null($operador)) ? $_SESSION['usuario'] :  $operador;    
        $model = new ViewVagaCandidato();
        $key = 'vagaid';
        $criterio = array();
        $columns = array();
        $options = array();                      

        if ( !isset( $options['checkColumn'] ) ){
            $options['checkColumn'] = FALSE;
        }
        if ( !isset( $options['editLink'] ) ){
            $options['editLink'] = 'historico.php?id=';
        }
        if ( !isset( $options['editClass'] ) ){
            $options['editClass'] = 'detalhes';
        }
        if ( !isset( $options['editHeader'] ) ){
            $options['editHeader'] = 'Editar';
        }
        
        $criterio['precondicao'] = 'VAGAATIVA = \'SIM\' AND candidato IS NOT NULL';
        
        # Só restringe se o usuário não tiver a permissão para cadastrar contratos.
		if ( !$contratoid ){
            if ( !$operador->isAuthorized( Operacao::CONTRATO_CADASTRAR ) ){		
    			if ($pfcid == PerfilComportamental::Orgao)
    				$criterio['precondicao'] .= ' AND ( contratoid in (SELECT contratoid
    				    FROM contratos WHERE orgaoid ='.$operador->orgaoid.'))';
    					
    			if ($pfcid == PerfilComportamental::NucleoGestor)
    				$criterio['precondicao'] .= ' AND ( nucleogestorid ='.$operador->nucleogestorid.' ) ';
    
    			if ($pfcid == PerfilComportamental::Empresa)
    				$criterio['precondicao'] .= ' AND contratoid in (SELECT contratoid
    				    FROM contratos WHERE empresaid ='.$operador->empresaid.')';
    		}
		}
		else {
		    $criterio['precondicao'] .= ' AND contratoid = ' . $contratoid;
		}
		if ( $statusPermitidos ){
		    $criterio['precondicao'] .= ' AND statuscandidatoid IN (' . $statusPermitidos .')';
		}
        elseif ( $statusProibidos ){
		    $criterio['precondicao'] .= ' AND statuscandidatoid NOT IN (' . $statusProibidos .')';
		}
						
        $criterio['orderBy'] = 'vagaid';
        
        parent::__construct($model, $key, $criterio, $options, $columns);
        $this->addColumnsData(array(
                                    array( 'header' => 'ID', 'name' => 'vagaid' ), 
                                    array('header' => 'CONTRATOID',
                                          'name' => 'contratoid'),
                                    array('header' => 'NUMERO ORGAO',
                                          'name'=> 'numeroorgao'),
                                    'orgao',
                                    'cargo',                                    
                                    'lotacao',
                                    'salario',
                                    'cpf',
                                    'candidato',
                                    array('header' => 'STATUS',
                                          'name' => 'statuscandidato'),
                                   ));
        $this->addFiltersCombo( array('contratoid', 'orgao', 'cargo',
                                      'lotacao','statuscandidato' ) );
    }    
}